home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / program / 331 / gemfsc14 / aessrc14 / aesevnx2.s < prev    next >
Text File  |  1990-05-27  |  3KB  |  77 lines

  1.  
  2. ;*========================================================================
  3. ;*
  4. ;* AESFAST Public Domain GEM bindings.
  5. ;*
  6. ;* 11/25/89 v1.4
  7. ;*          New function.
  8. ;*========================================================================
  9.  
  10.           .include  "aesfast.sh"
  11.  
  12. ;*************************************************************************
  13. ;*
  14. ;* Extended Event manager routines 2 of n.
  15. ;*
  16. ;*************************************************************************
  17.  
  18. ;-------------------------------------------------------------------------
  19. ; evnx_multi - everybody's favorite.
  20. ;-------------------------------------------------------------------------
  21.  
  22.         abs                   ; ENVX_MULTI structure
  23. msgbuf:   ds.w    8
  24. mflags:   ds.w    1
  25. mbclicks: ds.w    1
  26. mbmask:   ds.w    1
  27. mbstate:  ds.w    1
  28. mm1flags: ds.w    1
  29. mm1rect:  ds.w    4
  30. mm2flags: ds.w    1
  31. mm2rect:  ds.w    4
  32. mtlocount:ds.w    1
  33. mthicount:ds.w    1
  34.  
  35. mwhich:   ds.w    1
  36. mmox:     ds.w    1
  37. mmoy:     ds.w    1
  38. mmobutton:ds.w    1
  39. mmokstate:ds.w    1
  40. mkreturn: ds.w    1
  41. mbreturn: ds.w    1
  42.  
  43.           text
  44.  
  45. _evnx_multi::
  46.  
  47.           cargs     #4,.pmstruct.l
  48.  
  49.           AControl  25,16,7,1           ; Load control parms.
  50.           lea       aesblock,a0         ; Load pointer to AES block, 
  51.           movep.l   d0,control+1(a0)    ; fill in the control array (!),
  52.  
  53.           exg       a2,d2               ; save a2 register for Laser C.
  54.           lea       .pmstruct(sp),a2    ; make double-indirect pointer
  55.           move.l    a2,padrin(a0)       ; to msgbuf, store as adrin pointer.
  56.  
  57.           move.l    (a2),a2             ; get pointer to evnx_multi struct.
  58.  
  59.           lea       mflags(a2),a1       ; get pointer to intin part of
  60.           move.l    a1,pintin(a0)       ; evnx_multi structure, store it.
  61.  
  62.           lea       mwhich(a2),a1       ; get pointer to intout part of
  63.           move.l    a1,pintout(a0)      ; evnx_multi structure, store it.
  64.  
  65.           exg       a2,d2               ; restore a2 register.
  66.  
  67.           move.l    a0,d1               ; move the aespb pointer to the
  68.           move.w    #$C8,d0             ; interface register, also the AES
  69.           trap      #2                  ; function code, call AES.
  70.  
  71.           move.l    .pmstruct(sp),a0    ; get pointer to evnx_multi struct,
  72.           move.w    mwhich(a0),d0       ; return event flags in d0, with
  73.           rts                           ; CCR regs set for Laser C.
  74.  
  75. ;         end of code
  76.  
  77.